Sliding Window এবং Rolling Forecast হল ডেটা সায়েন্স এবং মেশিন লার্নিংয়ের গুরুত্বপূর্ণ কৌশল, বিশেষ করে টাইম সিরিজ ডেটার বিশ্লেষণ এবং পূর্বাভাস (forecasting) তৈরি করার জন্য। এই কৌশলগুলো ব্যবহার করা হয় যখন আপনি পূর্ববর্তী ডেটা থেকে ভবিষ্যতের ভবিষ্যদ্বাণী বা পূর্বাভাস তৈরি করতে চান, এবং এতে সময়ের সাথে সাথে ডেটার পরিবর্তন বা পরিবর্তিত প্রবণতা (trend) বিবেচনায় নেওয়া হয়।
এখানে Sliding Window এবং Rolling Forecast Techniques এর বিস্তারিত আলোচনা করা হল:
1. Sliding Window Technique
Sliding Window (একে Moving Windowও বলা হয়) হল একটি কৌশল যেখানে একটি স্থির দৈর্ঘ্যের "উইন্ডো" (window) চলতে থাকে এবং ডেটা সেটের বিভিন্ন অংশে প্রয়োগ করা হয়। এই কৌশলে, একটি নির্দিষ্ট উইন্ডোতে সময়ভিত্তিক ডেটা সিলেক্ট করা হয়, এবং যখন একটি নতুন ডেটা পয়েন্ট যুক্ত হয়, তখন পুরানো একটি ডেটা পয়েন্ট উইন্ডো থেকে বাদ পড়ে, অর্থাৎ এটি "স্লাইড" বা স্থানান্তরিত হয়।
Sliding Window এর মূল ধারণা:
- এটি পূর্ববর্তী কিছু সময়ের ডেটা ব্যবহার করে ভবিষ্যৎ পূর্বাভাস তৈরি করতে সহায়তা করে।
- প্রতিটি নতুন ডেটা পয়েন্টের সাথে উইন্ডোটি এক পজিশন এগিয়ে স্লাইড করে, যার ফলে নতুন একটি সময়ের ডেটা ভ্যালিড হয় এবং পুরনো ডেটা বাদ দেওয়া হয়।
- এটি মূলত ফিচার এক্সট্র্যাকশন বা মডেল ট্রেনিং এর জন্য ব্যবহৃত হয়।
Sliding Window এর উদাহরণ:
ধরা যাক আপনার কাছে ১০ দিনের ডেটা রয়েছে এবং আপনি ৫ দিনের উইন্ডো ব্যবহার করছেন। তাহলে প্রথমে ১ থেকে ৫ দিন পর্যন্ত ডেটা নিয়ে মডেল ট্রেনিং করবেন। তারপর পরবর্তী ৫ দিনের জন্য, উইন্ডোটি স্লাইড হবে, অর্থাৎ ২ থেকে ৬ দিন পর্যন্ত ডেটা নিয়ে পুনরায় মডেল ট্রেনিং করা হবে। এই প্রক্রিয়া চলতে থাকবে যতক্ষণ না সমস্ত ডেটা পয়েন্ট ব্যবহার হয়।
উদাহরণ:
import pandas as pd
# 10 দিনের ডেটাসেট
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
window_size = 5
for i in range(len(data) - window_size + 1):
window = data[i:i+window_size]
print(window)
এখানে 5 দিনের উইন্ডো দিয়ে পুরো ডেটাসেটের উপর স্লাইডিং উইন্ডো প্রক্রিয়া প্রয়োগ করা হয়েছে।
Sliding Window এর সুবিধা:
- সময়ের সাথে সাথে নতুন তথ্যের ভিত্তিতে পূর্বাভাস তৈরি করতে সহায়তা করে।
- ছোট, স্থির উইন্ডো ব্যবহার করে ট্রেনিং এবং ফিচার এক্সট্র্যাকশন দ্রুত হতে পারে।
Sliding Window এর সীমাবদ্ধতা:
- প্রতিটি উইন্ডো নতুন করে ট্রেনিং করা হয়, তাই মডেলটি সময়ের সাথে চলতে থাকা প্রবণতা ধরে রাখতে নাও পারে।
2. Rolling Forecast Technique
Rolling Forecast হল একটি কৌশল যা Sliding Window এর মতো, কিন্তু এখানে মূল পার্থক্য হল যে, পূর্বাভাস বা ফোরকাস্টিংয়ের জন্য ডেটার একটি চলমান সেট ব্যবহার করা হয়। এর মধ্যে, একই সময়ের পূর্বাভাস তৈরি করতে আপনাকে নতুন ডেটা পয়েন্টগুলিকে একের পর এক যোগ করে যেতে হবে এবং পূর্ববর্তী পূর্বাভাসগুলির জন্য সংশোধন করতে হবে।
Rolling Forecast এর মূল ধারণা:
- এটি একটি ডায়নামিক পদ্ধতি যেখানে পূর্ববর্তী পূর্বাভাসের উপর ভিত্তি করে ভবিষ্যৎ পূর্বাভাস তৈরি করা হয়।
- এর মধ্যে, নতুন তথ্যের প্রতি পূর্বাভাসের প্রতিক্রিয়া দেখা যায় এবং পূর্বাভাসগুলি সময়ের সাথে আপডেট হয়।
- এটি সাধারণত স্টক মার্কেট, বিক্রয় পূর্বাভাস, এবং অর্থনৈতিক মডেলিং এ ব্যবহৃত হয়, যেখানে আপনার মডেলটি পূর্ববর্তী ডেটা থেকে ভবিষ্যতের পূর্বাভাস তৈরি করতে সাহায্য করে।
Rolling Forecast এর উদাহরণ:
ধরা যাক, আপনার কাছে ১০ দিনের ডেটা আছে এবং আপনি প্রথম ৫ দিনের উপর ভিত্তি করে পরবর্তী ৫ দিনের পূর্বাভাস তৈরি করতে চান। প্রথমে ১ থেকে ৫ দিনের ডেটা নিয়ে মডেল ট্রেনিং করবেন, তারপর ১ থেকে ৬ দিন পর্যন্ত ডেটা নিয়ে পূর্বাভাস তৈরি করবেন, এবং এই প্রক্রিয়া চলতে থাকবে যতক্ষণ না শেষ দিন আসে।
উদাহরণ:
import pandas as pd
# 10 দিনের ডেটাসেট
data = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
window_size = 5
for i in range(window_size, len(data)):
forecast = data[i - window_size:i] # 5 দিনের ডেটার পূর্বাভাস তৈরি
print(f'Forecast using data from day {i-window_size+1} to {i}: {forecast}')
এখানে, প্রথম ৫ দিন এবং পরে স্লাইডিং উইন্ডো অনুযায়ী পরবর্তী ৫ দিনের পূর্বাভাস তৈরি করা হচ্ছে।
Rolling Forecast এর সুবিধা:
- সময়ের সাথে আপডেট হওয়া ডেটার ভিত্তিতে পূর্বাভাস তৈরি করতে সহায়তা করে।
- ডেটার পরিবর্তন বা প্রবণতা অনুযায়ী পূর্বাভাস সমন্বয় করতে সক্ষম।
Rolling Forecast এর সীমাবদ্ধতা:
- এটি দীর্ঘ সময়ের জন্য হিসাব করা হলে কম্পিউটেশনাল খরচ বৃদ্ধি পেতে পারে।
- প্রতিটি পূর্বাভাসকে আপডেট করা হয়, যা সময়সাপেক্ষ হতে পারে।
তুলনা: Sliding Window এবং Rolling Forecast
| বৈশিষ্ট্য | Sliding Window | Rolling Forecast |
|---|---|---|
| কাজের ধরন | পূর্ববর্তী সময়ের একটি নির্দিষ্ট উইন্ডো ব্যবহার করে পূর্বাভাস তৈরি করা হয়। | নতুন ডেটা পয়েন্টে পূর্বাভাস আপডেট করা হয় এবং পূর্ববর্তী ফলাফলও সংশোধন করা হয়। |
| ডেটার পরিমাণ | উইন্ডো নির্দিষ্ট, স্থির। | ডেটা ধারাবাহিকভাবে আপডেট হয়। |
| প্রধান লক্ষ্য | নির্দিষ্ট সময়ের মধ্যে পূর্বাভাস। | ভবিষ্যতের পূর্বাভাস তৈরি ও আপডেট করা। |
| প্রতিটি উইন্ডো/পূর্বাভাস | একই ধরণের তথ্য পুনরায় ব্যবহার করা হয়। | পূর্ববর্তী পূর্বাভাসও আপডেট করা হয়। |
| ব্যবহার | ছোট ডেটাসেট বা সহজ সমস্যা সমাধানে কার্যকর। | সময়ভিত্তিক বড় ডেটাসেট এবং ডায়নামিক সমস্যা সমাধানে কার্যকর। |
সারাংশ
Sliding Window এবং Rolling Forecast দুইটি শক্তিশালী কৌশল যা টাইম সিরিজ ডেটা অ্যানালাইসিস এবং পূর্বাভাস তৈরির ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে। Sliding Window সময়ের সাথে চলতে থাকা ডেটার একটি নির্দিষ্ট অংশ ব্যবহার করে এবং Rolling Forecast সময়ের সাথে পূর্বাভাসগুলোকে ধারাবাহিকভাবে আপডেট করে। এই দুটি কৌশল টাইম সিরিজ ডেটার মধ্যে প্রবণতা এবং পরিবর্তন অনুসারে পূর্বাভাস তৈরি করতে সাহায্য করে।
Read more